<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>报告</title>
    <meta name="generator" content="BSTestRunner 0.8.4"/>
    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
    <script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
    
<style type="text/css" media="screen">

/* -- css div popup ------------------------------------------------------------------------ */
.popup_window {
    display: none;
    position: relative;
    left: 0px;
    top: 0px;
    /*border: solid #627173 1px; */
    padding: 10px;
    background-color: #99CCFF;
    font-family: "Lucida Console", "Courier New", Courier, monospace;
    text-align: left;
    font-size: 10pt;
    width: 1200px;
}

/* -- report ------------------------------------------------------------------------ */

#show_detail_line .label {
    font-size: 85%;
    cursor: pointer;
}

#show_detail_line {
    margin: 2em auto 1em auto;
}

#total_row  { font-weight: bold; }
.hiddenRow  { display: none; }
.testcase   { margin-left: 2em; }

</style>


    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
      <![endif]-->
  </head>
<body>
<div class="container">
    
 <div class='heading'>
     <div style='width: 50%;float:left;margin-top:inherit'>
<h1>报告</h1>
<p><strong>开始时间:</strong> 2021-11-21 16:05:19</p>
<p><strong>持续时间:</strong> 0:00:09.732154</p>
<p><strong>状态:</strong> <span class="text text-success">通过 <strong>38</strong></span> <span class="text text-danger">失败 <strong>4</strong></span></p>

<p class='description'>测试报告</p>
</div> 

<div id='container2' style='width:50%;float:left;margin-top:20px;height:200px;'>
    </div>
</div >
<div id='containerchart' style='height: 300px;margin-top: 20%;'></div>
    
    
<p id='show_detail_line'>
<span class="label label-primary" onclick="showCase(0)">公用</span>
<span class="label label-danger" onclick="showCase(1)">失败</span>
<span class="label label-default" onclick="showCase(2)">所有</span>
</p>
<table id='result_table' class="table">
    <thead>
        <tr id='header_row'>
            <th>测试组/测试用例</td>
            <th>数量</td>
            <th>失败</td>
            <th>通过</td>
            <th>错误</td>
            <th>查看</td>
        </tr>
    </thead>
    <tbody>
        
<tr class='text text-success'>
    <td>testchangepassword.TestpasswordCase</td>
    <td>6</td>
    <td>6</td>
    <td>0</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c1',6)">详情</a></td>
</tr>

<tr id='pt1.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_student_error</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_student_new</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.3' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_student_newS</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_student_not</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.5' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_student_user</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt1.6' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_userNOtlogin</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-danger'>
    <td>testdeletemessage.TestViesMessageCase</td>
    <td>4</td>
    <td>3</td>
    <td>1</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c2',4)">详情</a></td>
</tr>

<tr id='pt2.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_id_not</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt2.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_id_per</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft2.3' class='none'>
    <td class='text text-danger'><div class='testcase'>testuser_login_id_success</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_ft2.3')" >
        失败</a>

    <div id='div_ft2.3' class="popup_window">
        <div style='text-align: right;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft2.3').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft2.3: Traceback (most recent call last):
  File "/Users/lileilei/Desktop/testplan/PythonDesignPatterns/test/testdeletemessage.py", line 63, in testuser_login_id_success
    self.assertEqual(reslut['code'], 200)
AssertionError: 100901 != 200


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt2.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_not_login</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-success'>
    <td>testmain.FastApiTestUserCreate</td>
    <td>5</td>
    <td>5</td>
    <td>0</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c3',5)">详情</a></td>
</tr>

<tr id='pt3.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_create_user: 重复的添加一个数据</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt3.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_create_user_new: 添加一个新的学生</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt3.3' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_create_user_new_one: 测试学生没有填写学籍号</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt3.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_create_user_new_tearcher: 添加一个新的教师</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt3.5' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_create_user_new_tearcher_one: 测试老师的工作号不填写</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-success'>
    <td>testmessage.TestMessageCase</td>
    <td>6</td>
    <td>6</td>
    <td>0</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c4',6)">详情</a></td>
</tr>

<tr id='pt4.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_message_to_orther</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_message_two_me</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.3' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_user_file</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_user_notexc</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.5' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_user_twod_file</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt4.6' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_not_login</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-success'>
    <td>testmessagelist.TestMessageListCase</td>
    <td>2</td>
    <td>2</td>
    <td>0</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c5',2)">详情</a></td>
</tr>

<tr id='pt5.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_id</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt5.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_not_login</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-danger'>
    <td>testmessagereback.TestMessageListCase</td>
    <td>5</td>
    <td>4</td>
    <td>1</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c6',5)">详情</a></td>
</tr>

<tr id='pt6.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser__not</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt6.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_big</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt6.3' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_less</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt6.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_not_login</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft6.5' class='none'>
    <td class='text text-danger'><div class='testcase'>testuser_success</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_ft6.5')" >
        失败</a>

    <div id='div_ft6.5' class="popup_window">
        <div style='text-align: right;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft6.5').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft6.5: Traceback (most recent call last):
  File "/Users/lileilei/Desktop/testplan/PythonDesignPatterns/test/testmessagereback.py", line 74, in testuser_success
    self.assertEqual(reslut['code'], 200)
AssertionError: 100804 != 200


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr class='text text-danger'>
    <td>testuserLogin.UserLoginCase</td>
    <td>7</td>
    <td>6</td>
    <td>1</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c7',7)">详情</a></td>
</tr>

<tr id='ft7.1' class='none'>
    <td class='text text-danger'><div class='testcase'>test_log_error_big</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_ft7.1')" >
        失败</a>

    <div id='div_ft7.1' class="popup_window">
        <div style='text-align: right;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft7.1').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft7.1: Traceback (most recent call last):
  File "/Users/lileilei/Desktop/testplan/PythonDesignPatterns/test/testuserLogin.py", line 87, in test_log_error_big
    self.assertEqual(reslut['code'],100204)
AssertionError: 100206 != 100204


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt7.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_log_error_bigtime</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt7.3' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_log_error_bigtime_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt7.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_login_error</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt7.5' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_login_success</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt7.6' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_login_success_two</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt7.7' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_login_usernot_exict</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-success'>
    <td>testusergetuser.UserGetCase</td>
    <td>3</td>
    <td>3</td>
    <td>0</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c8',3)">详情</a></td>
</tr>

<tr id='pt8.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_get_teacher</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt8.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_user_not_exict</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt8.3' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>test_usernotLogin</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr class='text text-danger'>
    <td>testviewmessage.TestViesMessageCase</td>
    <td>4</td>
    <td>3</td>
    <td>1</td>
    <td>0</td>
    <td><a class="btn btn-xs btn-primary"href="javascript:showClassDetail('c9',4)">详情</a></td>
</tr>

<tr id='pt9.1' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_id_not</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='pt9.2' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_login_id_per</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

<tr id='ft9.3' class='none'>
    <td class='text text-danger'><div class='testcase'>testuser_login_id_success</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link btn btn-xs btn-default" onfocus='this.blur();' href="javascript:showTestDetail('div_ft9.3')" >
        失败</a>

    <div id='div_ft9.3' class="popup_window">
        <div style='text-align: right;cursor:pointer'>
        <a onfocus='this.blur();' onclick="document.getElementById('div_ft9.3').style.display = 'none' " >
           [x]</a>
        </div>
        <pre>
        
ft9.3: Traceback (most recent call last):
  File "/Users/lileilei/Desktop/testplan/PythonDesignPatterns/test/testviewmessage.py", line 63, in testuser_login_id_success
    self.assertEqual(reslut['code'], 200)
AssertionError: 100601 != 200


        </pre>
    </div>
    <!--css div popup end-->

    </td>
</tr>

<tr id='pt9.4' class='hiddenRow'>
    <td class='text text-success'><div class='testcase'>testuser_not_login</div></td>
    <td colspan='5' align='center'>通过</td>
</tr>

    </tbody>
    <tfoot>
        <tr id='total_row'>
            <td>总计</td>
            <td>42</td>
            <td class="text text-success">38</td>
            <td class="text text-danger">4</td>
            <td class="text text-warning">0</td>
            <td>&nbsp;</td>
        </tr>
    </tfoot>
</table>

    <div id='ending'>&nbsp;</div>
</div>
 
    <script language='javascript' type='text/javascript'>
var dom = document.getElementById('containerchart');
var myChart = echarts.init(dom);
var domone = document.getElementById('container2');
var myChartone = echarts.init(domone);
var optionsone;
optionsone = {
    title: {
        text: '历史记录'
    },
    tooltip: {
        trigger: 'axis'
    },
    legend: {
        data: ['成功', '失败','错误']
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    toolbox: {
        feature: {
            saveAsImage: {}
        }
    },
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: ['2021_11_21_16_05_28']
    },
    yAxis: {
        type: 'value'
    },
    series: [
        {
            name: '成功',
            type: 'line',
            stack: '总量',
            data: ['38']
        },
        {
            name: '失败',
            type: 'line',
            stack: '总量',
            data: ['4']
        },
        {
            name: '错误',
            type: 'line',
            stack: '总量',
            data: ['0']
        }

    ]
};
if (optionsone && typeof optionsone === 'object') {
    myChartone.setOption(optionsone);
}
output_list = Array();

/* level - 0:Summary; 1:Failed; 2:All */
function showCase(level) {
    trs = document.getElementsByTagName('tr');
    for (var i = 0; i < trs.length; i++) {
        tr = trs[i];
        id = tr.id;
        if (id.substr(0,2) == 'ft') {
            if (level < 1) {
                tr.className = 'hiddenRow';
            }
            else {
                tr.className = '';
            }
        }
        if (id.substr(0,2) == 'pt') {
            if (level > 1) {
                tr.className = '';
            }
            else {
                tr.className = 'hiddenRow';
            }
        }
    }
}


function showClassDetail(cid, count) {
    var id_list = Array(count);
    var toHide = 1;
    for (var i = 0; i < count; i++) {
        tid0 = 't' + cid.substr(1) + '.' + (i+1);
        tid = 'f' + tid0;
        tr = document.getElementById(tid);
        if (!tr) {
            tid = 'p' + tid0;
            tr = document.getElementById(tid);
        }
        id_list[i] = tid;
        if (tr.className) {
            toHide = 0;
        }
    }
    for (var i = 0; i < count; i++) {
        tid = id_list[i];
        if (toHide) {
            document.getElementById('div_'+tid).style.display = 'none'
            document.getElementById(tid).className = 'hiddenRow';
        }
        else {
            document.getElementById(tid).className = '';
        }
    }
}


function showTestDetail(div_id){
    var details_div = document.getElementById(div_id)
    var displayState = details_div.style.display
    if (displayState != 'block' ) {
        displayState = 'block'
        details_div.style.display = 'block'
    }
    else {
        details_div.style.display = 'none'
    }
}
function html_escape(s) {
    s = s.replace(/&/g,'&amp;');
    s = s.replace(/</g,'&lt;');
    s = s.replace(/>/g,'&gt;');
    return s;
}
</script>
</body>
</html>
    
